华为云:基于HCE OS的FTP文件共享服务器部署(后端存储对接OBS)
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
写在前面
- 博文内容为
华为云欧拉操作系统入门级开发者认证
实验笔记 - 基于HCE OS的FTP文件共享服务器部署
- 后端存储对接 OBS
- 理解不足小伙伴帮忙指正
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
防火墙放行端口
当前假设你已经有了一台弹性云服务器,搭建FTP , 首先需要开启对应的端口,配置安全组
, 服务列表>网络>虚拟私有云vpc
添加入方向 FTP 服务对应的端口
FTP服务部署
通过cloudshell登录ecs
当直接通过下面的命令安装ftp服务
1 | [root@ecs-hce ~]# yum install -y vsftpd |
设置FTP服务开机自启动
1 | [root@ecs-hce ~]# systemctl enable vsftpd.service |
在ECS上启动FTP服务, 查看FTP服务端口
1 | [root@ecs-hce ~]# systemctl start vsftpd.service |
配置vsftpd
,查看配置文件位置
1 | [root@ecs-hce ~]# rpm -qc vsftpd |
vsftpd安装后默认开启了匿名FTP的功能,使用匿名FTP,用户无需输入用户名密码即可登录FTP服务器,但没有权限修改或上传文件。
用户如果试图使用Linux操作系统中的账号登录服务器,将会被vsftpd拒绝,但可以在vsftpd里配置用户账号和密码登录。
配置登录账号
1 | [root@ecs-hce ~]# useradd ftpadmin |
创建供FTP使用的文件目录
1 | [root@ecs-hce ~]# mkdir /var/ftp/work01 |
修改vsftpd.conf
配置文件
1 | [root@ecs-hce ~]# vim /etc/vsftpd/vsftpd.conf |
默认配置
1 | <https://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>. |
可根据实际需求选择将FTP配置为主动模式或者被动模式
。如果华为云上的服务器需要通过公网IP地址
访问华为云上的实例搭建的FTP服务器时,需要将FTP服务器配置为被动模式
。(本实验配置为被动模式)
设置以下参数,不允许匿名登录FTP服务器,允许本地用户登录FTP服务器,并指定FTP本地用户使用的文件目录。
1 | anonymous_enable=NO #不允许匿名登录FTP服务器 |
设置以下参数,限制用户只能访问自身的主目录。
1 | chroot_local_user=YES #所有用户都被限制在其主目录 |
设置以下参数,配置FTP支持被动模式。并指定FTP服务器的公网IP地址,以及可供访问的端口范围,端口范围请根据实际环境进行设置。
1 | listen=YES |
1 | [root@ecs-hce ~]# vim /etc/vsftpd/vsftpd.conf |
chroot_list
文件是限制在主目录下的例外用户名单。如果需要设置某个用户不受只可以访问其主目录的限制,可将对应的用户名写入该文件。如果没有例外也必须要有chroot_list
文件,内容可为空。
1 | [root@ecs-hce ~]# cd /etc/vsftpd/ |
重启vsftpd
服务使配置生效
1 | [root@ecs-hce vsftpd]# systemctl restart vsftpd.service |
上面操作涉及到的命令
1 | [root@ecs-hce vsftpd]# history |
客户端测试
在linux操作系统中登录。使用以下命令在ecs-hce上安装ftp访问客户端。
1 | yum install -y lftp |
安装完成之后使用lftp命令登录进入ftp文件服务器,登录过程中需要使用ftpadmin用户名的密码进行鉴权。
1 | lftp -u ftpadmin 120.46.212.140 #注意此处的IP地址需要修改为ecs-hce弹性云服务的弹性公网地址 |
验证登录正常,创建一个目录测试。
通过上面的方式我们实现了简单的FTP,但是正常情况下,FTP 服务需要大量的存储空间,直接写到 ecs 里面需要考虑扩容等问题,访问也不是特别方便,所以我们需要一个后端存储,可以不用考虑容量,访问方便,即通过下面的方式:
安装S3FS
应用,通过S3FS实现把对象存储
的Bucket
像盘一样,挂在FTP服务的工作目录
之下,从而为服务器提供海量的对象存储远程附件存储空间。
创建OBS对象存储
打开OBS服务控制台
创建存储桶,配置完成之后点击,立即创建。
- 区域:华北-北京四
- 桶名称:ftp-obs(如果创建时提示名称已被占用,请自定义名称,并记住该名称)
- 数据冗余存储策略:单AZ存储
- 默认存储类别:低频访问存储
- 桶策略:公共读写(在弹出页签选择“确认修改”)
- 其他参数:保持默认
在桶列表中,点击桶名,
点击对象>新建文件夹。输入文件夹名称,test。点击确定。
获取访问密钥,打开对象存储服务,点击“总览”。
点击“增加访问密钥”,增加后会有一个csv文件自动下载到本地。
记录下载下来的csv文件中的“Access Key Id”和“Secret Access Key”。
配置OBS挂载至本地FTP
使用root账户登录ecs-hce弹性云服务器, 安装fuse组件(s3fs依赖fuse组件),安装s3fs
直接使用仓库安装
1 | sudo yum install -y automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel |
内网环境源码安装
1 | [root@ecs-hce ~]# wget https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com/20220329/s3fs-fuse-master.zip |
挂载OBS桶,在/root/下创建.passwd-s3fs的文件,设置文件权限为600
1 | [root@ecs-hce s3fs-fuse]# cd |
在.passwd-s3fs的文件中添加OBS桶的AK:SK。此AK,SK内容为“1.3 创建OBS对象存储”步骤4获取的内容。
1 | [root@ecs-hce ~]# cat << EOF >> /root/.passwd-s3fs |
1 | [root@ecs-hce ~]# ls -l /root/.passwd-s3fs |
1 | [root@ecs-hce s3fs-fuse]# cd |
1 | [root@ecs-hce ~]# ls -l /root/.passwd-s3fs |
执行如下格式命令实施 mount
(以下示例中,桶名为ftp-obs:/test,test为桶内的指定目录,挂载点为/var/ftp/work01/
,在实际使用时,桶名,挂载点,以及url需根据实际情况修改)
1 | [root@ecs-hce ~]# s3fs -o allow_other ftp-obs-demo:/test /var/ftp/work01/ -o passwd_file=/root/.passwd-s3fs -o url=https://obs.cn-north-4.myhuaweicloud.com/ -o umask=0 -o max_write=131072 -o use_cache=/dev/shm -o big_writes -o enable_noobj_cache -o nonempty |
查看是否挂载成功。
1 | [root@ecs-hce ~]# df -h |
卸载已挂载目录的方式为:unmount –l /var/ftp/work01/
1 | [root@ecs-hce ~]# mount -l |
设置开机启动
为确保客户端重启后,仍可自动挂载OBS桶至本地目录,需在/etc/fstab中新增一行s3fs的开机启动的挂载命令。
其中ftp-obs为示例的桶名,test指桶内的指定目录,/var/ftp/work01/为示例的挂载路径,http://obs.cn-east-3.myhuaweicloud.com/为示例的url,实际配置时,需根据实际情况修改。
1 | [root@ecs-hce ~]# cat /etc/fstab > /etc/fstab.bak |
确认配置
1 | [root@ecs-hce ~]# cat /etc/fstab |
验证结果
此时再次使用ftp访问工具登录到之前创建的ftp服务器中。并创建文件夹test.txt。(替换为自己的弹性云服务器IP)
1 | [root@ecs-hce ~]# lftp -u ftpadmin 120.46.212.140 |
博文部分内容参考
© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦 :)
华为云欧拉操作系统入门级开发者认证: https://edu.huaweicloud.com/certificationindex/developer/9bf91efb086a448ab4331a2f53a4d3a1
© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)
华为云:基于HCE OS的FTP文件共享服务器部署(后端存储对接OBS)
https://liruilongs.github.io/2024/01/30/华为云/华为云:基于HCE OS的FTP文件共享服务器部署/
1.基于华为云欧拉操作系统(HCE OS)单节点容器化部署(Prometheus、node-exporter、Grafana)应用性能监控平台
2.基于华为云欧拉操作系统(HCE OS)单节点容器化部署传统应用(Redis+Postgresql+Git+SpringBoot+Nginx)
3.基于华为云欧拉操作系统(HCE OS)构建HCE OS基础镜像
4.华为云云上两地三中心实践实操
5.华为云两地三中心实践理论
6.如何在华为云上购买ECS及以镜像的方式部署华为云欧拉操作系统 (HCE OS)
7.如何在华为云欧拉系统 ECS 实例新建私有 REPO 源并制作安全 RPM 包